// This is the interface of the abstract type Tree

#ifndef ABSTREE_H
#define ABSTREE_H

#include "type.h"
#include <vector>
using namespace std;

template<typename T>
class AbsTree
{
public:
	//constructor of abstract classes: how will it be inherited?
	AbsTree(T root);							//constructor

	virtual T createNode(TYPE, T);
	static void setRoot(T);
	static T getRoot();
	virtual void setParentChild(T, T);
	virtual vector<T> getChildren(T);
private:
	static T rootNode;
};

#endif